package com.home766.dao;

import com.home766.dto.DictionaryDTO;
import com.home766.entity.Dictionary;
import net.biz.Page;
import net.biz.Pageable;
import net.biz.dao.BaseDao;

import java.util.List;
import java.util.Map;

public interface IDictionaryDao extends BaseDao<Dictionary, Long> {
	/**
	 * 查找root节点
	 * @param count
	 * @return
	 */
	List<Dictionary> findRoots(Integer count);
	
	/**
	 * 根据上级节点查找下级集合
	 * @param dictionaryId
	 * @return
	 */
	public List<DictionaryDTO> findChildren(Long dictionaryId);
	
	/**
	 * 分页
	 * @param params
	 * @param pageable
	 * @return
	 */
	public Page<Dictionary> findPage(Map<String, Object> params, Pageable pageable);
	
	/**
	 * 查找根节点，
	 * @param bool 是否有效
	 * @param count 数量
	 * @return
	 */
	List<Dictionary> findRoots(Boolean bool, Integer count);
	
	/**
	 * 当前节点的子节点集合
	 * @param dictionaryId
	 * @param bool 有效过滤
	 * @return
	 */
	List<DictionaryDTO> findChildren(Long dictionaryId, Boolean bool);
	
	/**
	 * 查询所有有效数据字典
	 * @return
	 */
	List<Dictionary> findAll();
	
	/**
	 * 根据id 查找
	 * @param bool 是否有效
	 * @param id ID
	 * @return
	 */
	Dictionary findById(Boolean bool, Long id);
	
}
